// 配置路由的地方
import Vue from 'vue'
import VueRouter from 'vue-router'
import routes from '@/router/routes'
import store from '@/store'
// 使用插件
Vue.use(VueRouter)



let originPush = VueRouter.prototype.push;

VueRouter.prototype.push = function (location, resolve, reject) {
    if (resolve && reject) {
        originPush.call(this.location, resolve, reject);
    } else {
        originPush.call(this, location, () => { }, () => { });
    }
}
// 配置路由
let router = new VueRouter({
    routes,
    scrollBehavior(to, from, saveposition) {
        return { x: 0, y: 0 }
    }
})
// 全局守卫：前置守卫（在路由跳转之间进行判断）
router.beforeEach(async(to, from, next) => {
    // to:可以获取到你要跳转到那个路由信息
    // from：可以获取到你从那个路由来
    // next放行函数 next()放行 next(path)放行到指定路由
    next()
    let token = store.state.user.token
    let name = store.state.user.ueserinfo.name
    console.log(name);
    // console.log(store);
    // 用户已经登录了
    // if (token) {
    //     // 用户已经登录了还想去login休想
    //     if (to.path == '/login##' || to.path == '/login') {
    //         next('/home')
    //         console.log('111');
    //     } else {
    //         // 登录了去的不是login
    //         // 有用户名
    //         if (name) {
    //             next()
    //             console.log('222');
    //         } else {
    //             // 没用户名
    //             try {
    //                 await store.dispitch('GetuserInfo');
    //                 next()
    //                 console.log(333);
    //             } catch (error) {
    //                 // token失效获取不到用户名
    //                 // 清除token
    //                 await store.dispatch('userLogout')
    //                 next('/login')
    //                 console.log('888');
    //             }

    //         }
    //     }
    // } else {
    //     // 未登录
    //     next()
    //     console.log('444');
    // }
});
export default router